/*
 * Título: gestHora. Aplicación web de gestión de horarios para conservatorios.
 * Alumnos:
 * - Javier Pardo Muñoz. I.T. Informática de Gestión
 * - Antonio Prior Cazorla. I.T. Informática de Gestión
 * Director: Dr. José Raúl Romero Salguero.
 *     
 *  Copyright (C) 2013 Javier Pardo Muñoz / Antonio Prior Cazorla
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

function rellenarSelectEspecialidad() {
    //$('#selectEspecialidad').empty(); 
    $.getJSON("/gestHora/jsp/controllers/gestionEspecialidadController.jsp", "tipo=listarEspecialidades", function(data) {

        $.each(data, function(i, especialidad) {
            $("<option value=" + especialidad.idEspecialidad + ">" + especialidad.nombreEspecialidad + "</option>").appendTo("#selectEspecialidad");
        });
    });
}

function rellenarSelectFiltrarEspecialidad() {
    //$('#selectEspecialidad').empty(); 
    $.getJSON("/gestHora/jsp/controllers/gestionEspecialidadController.jsp", "tipo=listarEspecialidades", function(data) {

        $.each(data, function(i, especialidad) {
            $("<option value=" + especialidad.idEspecialidad + ">" + especialidad.nombreEspecialidad + "</option>").appendTo("#selectFiltrarEspecialidad");
        });
    });
}

function editorEspecialidad(id, curso) {
    //Se recuperan los JSON donde estara la información del especialidad que queriemos modificar
    $.getJSON("/gestHora/jsp/controllers/gestionEspecialidadController.jsp", "tipo=editarEspecialidad&id=" + id, function(data) {
        //insertamos la información del especialidad en la View 
        $.each(data, function(i, especialidad) {
            $("#editarId").val(especialidad.idEspecialidad);
            $("#editarNombre").val(especialidad.nombreEspecialidad);
        });
        $('#formEditarEspecialidad').fadeIn();
        $('#formNuevoEspecialidad').fadeOut();
        rellenarSelectEditarCursos(curso);
    });

}
function rellenarSelectEditarNombreCursos() {

    var id = 100;
    $('#selectEditarEspecialidad option:selected').each(function() {
        $.ajax({
            url: "/gestHora/jsp/controllers/gestionEspecialidadController.jsp",
            dataType: 'json',
            data: "tipo=cursoEspecialidad&id=" + $(this).val(),
            async: false,
            success: function(json) {
                if (id > json.length) {
                    $('#editarSelectCurso').empty();
                    $.each(json, function(i, curso) {
                        $("<option value= " + curso.idCurso + ">" + curso.nombreCurso + "</option>").appendTo("#editarSelectCurso");
                    });
                    id = json.length;
                }
            }
        });
    });
}

function rellenarSelectNombreCursos() {

    var id = 100;
    $('#selectEspecialidad option:selected').each(function() {
        $.ajax({
            url: "/gestHora/jsp/controllers/gestionEspecialidadController.jsp",
            dataType: 'json',
            data: "tipo=cursoEspecialidad&id=" + $(this).val(),
            async: false,
            success: function(json) {
                if (id > json.length) {
                    $('#selectCurso').empty();
                    $.each(json, function(i, curso) {
                        $("<option value= " + curso.idCurso + ">" + curso.nombreCurso + "</option>").appendTo("#selectCurso");
                    });
                    id = json.length;
                }
            }
        });
    });
}

function rellenarSelectFiltrarNombreCursos() {

    var id = 100;
    $('#selectFiltrarEspecialidad option:selected').each(function() {
        $.ajax({
            url: "/gestHora/jsp/controllers/gestionEspecialidadController.jsp",
            dataType: 'json',
            data: "tipo=cursoEspecialidad&id=" + $(this).val(),
            async: false,
            success: function(json) {
                if (id > json.length) {
                    $('#selectFiltrarCurso').empty();
                    $.each(json, function(i, curso) {
                        $("<option value= " + curso.idCurso + ">" + curso.nombreCurso + "</option>").appendTo("#selectFiltrarCurso");
                    });
                    id = json.length;
                }
            }
        });
    });
}

function rellenarSelectCursos() {
    $('#selectCurso').empty();
    $.getJSON("/gestHora/jsp/controllers/gestionEspecialidadController.jsp", "tipo=listarCursos", function(data) {
        $.each(data, function(i, curso) {

            $("<option value= " + curso.idCurso + ">" + curso.idCurso + "</option>").appendTo("#selectCurso");
        });
    });
}


function rellenarSelectEditarCursos(idCurso) {
    $('#selectEditarCurso').empty();

    $.getJSON("/gestHora/jsp/controllers/gestionEspecialidadController.jsp", "tipo=listarCursos", function(data) {
        $.each(data, function(i, curso) {
            if (idCurso === curso.idCurso) {
                $("<option value= " + curso.idCurso + " selected>" + curso.idCurso + "</option>").appendTo("#selectEditarCurso");

            } else {
                $("<option value= " + curso.idCurso + ">" + curso.idCurso + "</option>").appendTo("#selectEditarCurso");
            }
        });
    });
}

function listarEspecialidades() {
    var newHTML = "";
    //Se recuperan los JSON donde estara la información de las especialidades
    $.getJSON("/gestHora/jsp/controllers/gestionEspecialidadController.jsp", "tipo=listarEspecialidades", function(data) {
        //Se crea una newHTML donde crearemos el codigo html que se enviará a la View 
        newHTML += "<h3>Listado actual de Especialidades</h3><form class='formVistasNoticia'>\n\
                        <label for='buscar'>Filtrado: </label><input type='text' name='buscar' value='' id='buscar' onkeypress='return event.keyCode!=13'/><br/><br/></form><table class = 'tablaView rowstyle-alt paginate-10 sortable-onload-show-2'><thead><tr><th class=sortable-text>ID</th><th class=sortable-text>Nombre</th><th class=sortable-text>Cursos</th><th>Editar</th><th>Eliminar</th></tr></thead>";
        //Se rellena las tablas
        $.each(data, function(i, especialidad) {
            newHTML += "<tr><td>" + especialidad.idEspecialidad + "</td><td>" + especialidad.nombreEspecialidad + "</td><td>";

            for (var e = 0; e < especialidad.idCurso; e++) {
                newHTML += e + 1 + ", ";
            }

            newHTML += "</td><td><a href=javascript:void(0); onclick=editorEspecialidad(" + especialidad.idEspecialidad + "," + especialidad.idCurso + ");> <img src=/gestHora/img/editar.png alt=editar></a></td><td>" +
                    "<a href=javascript:void(0); onclick=confirmar(" + especialidad.idEspecialidad + ");> <img src=/gestHora/img/eliminar.png alt=eliminar</a></td></tr>";
        });

        newHTML += "</table>";
        //enviamos la tabla a las View
        $("#tabla").html(newHTML);
        //Se crea el filtrado de la tabla
        creaFiltrado();
        tablePaginater.init();
        fdTableSort.init();
    });

}



